#ifndef COMPRESSION_UNZIP_UTILS_H
#define COMPRESSION_UNZIP_UTILS_H

#include <string>
#include <vector>

using namespace std;

using VecData = vector<unsigned char>;

#pragma pack(push, 1)

struct FileEntry {
    unsigned int pathlen; // Length of the path string
    unsigned int size; // Compressed size
};

#pragma pack(pop)

VecData compress(const VecData &raw);

void read_load(ofstream &output, const string &file_path, size_t &raw_size, size_t &comp_size,
               const string &root = "");

string get_relpath(const string &path, const string &root = "");

#endif //COMPRESSION_UNZIP_UTILS_H
